home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Online / Apache / include / php / Zend / zend_constants.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-07-28  |  3.6 KB  |  65 lines

  1. /*
  2.    +----------------------------------------------------------------------+
  3.    | Zend Engine                                                          |
  4.    +----------------------------------------------------------------------+
  5.    | Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
  6.    +----------------------------------------------------------------------+
  7.    | This source file is subject to version 0.92 of the Zend license,     |
  8.    | that is bundled with this package in the file LICENSE, and is        | 
  9.    | available at through the world-wide-web at                           |
  10.    | http://www.zend.com/license/0_92.txt.                                |
  11.    | If you did not receive a copy of the Zend license and are unable to  |
  12.    | obtain it through the world-wide-web, please send a note to          |
  13.    | license@zend.com so we can mail you a copy immediately.              |
  14.    +----------------------------------------------------------------------+
  15.    | Authors: Andi Gutmans <andi@zend.com>                                |
  16.    |          Zeev Suraski <zeev@zend.com>                                |
  17.    +----------------------------------------------------------------------+
  18. */
  19.  
  20.  
  21. #ifndef ZEND_CONSTANTS_H
  22. #define ZEND_CONSTANTS_H
  23.  
  24. #include "zend_globals.h"
  25.  
  26. #define CONST_CS 0x1                /* Case Sensitive */
  27. #define CONST_PERSISTENT 0x2
  28.  
  29. typedef struct _zend_constant {
  30.     zval value;
  31.     int flags;
  32.     char *name;
  33.     uint name_len;
  34.     int module_number;
  35. } zend_constant;
  36.  
  37. #define REGISTER_LONG_CONSTANT(name,lval,flags)  zend_register_long_constant((name),sizeof(name),(lval),(flags),module_number ELS_CC)
  38. #define REGISTER_DOUBLE_CONSTANT(name,dval,flags)  zend_register_double_constant((name),sizeof(name),(dval),(flags),module_number ELS_CC)
  39. #define REGISTER_STRING_CONSTANT(name,str,flags)  zend_register_string_constant((name),sizeof(name),(str),(flags),module_number ELS_CC)
  40. #define REGISTER_STRINGL_CONSTANT(name,str,len,flags)  zend_register_stringl_constant((name),sizeof(name),(str),(len),(flags),module_number ELS_CC)
  41.  
  42. #define REGISTER_MAIN_LONG_CONSTANT(name,lval,flags)  zend_register_long_constant((name),sizeof(name),(lval),(flags),0 ELS_CC)
  43. #define REGISTER_MAIN_DOUBLE_CONSTANT(name,dval,flags)  zend_register_double_constant((name),sizeof(name),(dval),(flags),0 ELS_CC)
  44. #define REGISTER_MAIN_STRING_CONSTANT(name,str,flags)  zend_register_string_constant((name),sizeof(name),(str),(flags),0 ELS_CC)
  45. #define REGISTER_MAIN_STRINGL_CONSTANT(name,str,len,flags)  zend_register_stringl_constant((name),sizeof(name),(str),(len),(flags),0 ELS_CC)
  46.  
  47. void clean_module_constants(int module_number);
  48. void free_zend_constant(zend_constant *c);
  49. int zend_startup_constants(ELS_D);
  50. int zend_shutdown_constants(ELS_D);
  51. void zend_register_standard_constants(ELS_D);
  52. void clean_non_persistent_constants(void);
  53. ZEND_API int zend_get_constant(char *name, uint name_len, zval *result);
  54. ZEND_API void zend_register_long_constant(char *name, uint name_len, long lval, int flags, int module_number ELS_DC);
  55. ZEND_API void zend_register_double_constant(char *name, uint name_len, double dval, int flags, int module_number ELS_DC);
  56. ZEND_API void zend_register_string_constant(char *name, uint name_len, char *strval, int flags, int module_number ELS_DC);
  57. ZEND_API void zend_register_stringl_constant(char *name, uint name_len, char *strval, uint strlen, int flags, int module_number ELS_DC);
  58. ZEND_API int zend_register_constant(zend_constant *c ELS_DC);
  59. void zend_copy_constants(HashTable *target, HashTable *sourc);
  60. void copy_zend_constant(zend_constant *c);
  61.  
  62. #define ZEND_CONSTANT_DTOR (void (*)(void *)) free_zend_constant
  63.  
  64. #endif
  65.